package com.core.zyyz.amc.modules.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.core.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.core.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 授信额度对象 amc_credit_agreement
 *
 * @author lfs
 * @date 2024-12-04
 */
public class AmcCreditAgreement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 授信协议ID */
    private String creditAgreementId;

    /** 授信协议标识码 */
    @Excel(name = "授信协议标识码")
    private String creditAgreementCode;

    /** 受信人编码 */
    @Excel(name = "受信人编码")
    private String accreditorCode;

    /** 受信人名称 */
    @Excel(name = "受信人名称")
    private String accreditorName;

    /** 授信额度类型 */
    @Excel(name = "授信额度类型")
    private String creditAmountType;

    /** 授信额度 */
    @Excel(name = "授信额度")
    private BigDecimal creditAmount;

    /** 币种 */
    @Excel(name = "币种")
    private String CURRENCY;

    /** 汇率 */
    @Excel(name = "汇率")
    private BigDecimal exchangeRate;

    /** 额度循环标志 */
    @Excel(name = "额度循环标志")
    private String circulationMark;

    /** 额度已占用金额 */
    @Excel(name = "额度已占用金额")
    private BigDecimal amountOccupiedMoney;

    /** 额度生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "额度生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date amountEffectiveDate;

    /** 额度到期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "额度到期日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date amountExpiryDate;

    /** 额度状态 */
    @Excel(name = "额度状态")
    private String amountState;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String approvalStatus;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvedTime;

    /** 审批部门 */
    @Excel(name = "审批部门")
    private String approvalDept;

    /** 负责部门 */
    @Excel(name = "负责部门")
    private String ownerDept;

    /** 多法人代码 */
    @Excel(name = "多法人代码")
    private String CORPCODE;

    /** 负责人 */
    @Excel(name = "负责人")
    private String ownerId;

    /** 经办人 */
    @Excel(name = "经办人")
    private String ownerName;

    /** 负责人类型 */
    @Excel(name = "负责人类型")
    private String ownerIdType;

    /** 业务单元 */
    @Excel(name = "业务单元")
    private String owningBusinessUnit;

    /** 所属部门 */
    @Excel(name = "所属部门")
    private String owningUnitName;

    /** 预留1 */
    @Excel(name = "预留1")
    private String ATTRIBUTE1;

    /** 预留2 */
    @Excel(name = "预留2")
    private String ATTRIBUTE2;

    /** 预留3 */
    @Excel(name = "预留3")
    private String ATTRIBUTE3;

    /** 预留4 */
    @Excel(name = "预留4")
    private String ATTRIBUTE4;

    /** 预留5 */
    @Excel(name = "预留5")
    private String ATTRIBUTE5;

    /** 预留6 */
    @Excel(name = "预留6")
    private String ATTRIBUTE6;

    /** 预留7 */
    @Excel(name = "预留7")
    private String ATTRIBUTE7;

    /** 预留8 */
    @Excel(name = "预留8")
    private String ATTRIBUTE8;

    /** 预留9 */
    @Excel(name = "预留9")
    private String ATTRIBUTE9;

    /** 预留10 */
    @Excel(name = "预留10")
    private String ATTRIBUTE10;

    /** 预留11 */
    @Excel(name = "预留11")
    private String ATTRIBUTE11;

    /** 预留12 */
    @Excel(name = "预留12")
    private String ATTRIBUTE12;

    /** 预留13 */
    @Excel(name = "预留13")
    private String ATTRIBUTE13;

    /** 预留14 */
    @Excel(name = "预留14")
    private String ATTRIBUTE14;

    /** 预留15 */
    @Excel(name = "预留15")
    private String ATTRIBUTE15;

    /** 预留16 */
    @Excel(name = "预留16")
    private String ATTRIBUTE16;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationDate;

    /** 最后一次修改人 */
    @Excel(name = "最后一次修改人")
    private String lastUpdatedBy;

    /** 最后一次修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后一次修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateDate;

    /** 系统登录人 */
    @Excel(name = "系统登录人")
    private String lastUpdateLogin;

    /** 授信方向   01代表我方授信  02代表他方授信 */
    @Excel(name = "授信方向    参考数据字典credit_direction")
    private String creditDirection;

    /** 额度限制    参考数据字典amount_limit */
    @Excel(name = "额度限制    参考数据字典amount_limit")
    private String amountLimit;

    /** 受/授信主体名称 */
    @Excel(name = "受/授信主体名称")
    private String creditProviderName;

    /** 受/授信主体编码 */
    @Excel(name = "受/授信主体编码")
    private String creditProviderCode;

    /** 授信余额 */
    @Excel(name = "授信余额")
    private BigDecimal remainingAmount;

    /** 登记单号 */
    @Excel(name = "登记单号")
    private String registerNumber;

    /** 事项名称 */
    @Excel(name = "事项名称")
    private String registerName;

    /** 项目归属机构编码 */
    @Excel(name = "项目归属机构编码")
    private String projectAgency;

    /** 项目归属机构 */
    @Excel(name = "项目归属机构")
    private String projectAgencyName;

    /** 所属机构编码 */
    @Excel(name = "所属机构编码")
    private String projectAgency2;

    /** 所属机构 */
    @Excel(name = "所属机构")
    private String projectAgencyName2;

    /** 资金用途 */
    @Excel(name = "资金用途")
    private String assetToUse;

    /** 项目类型编码 */
    @Excel(name = "项目类型编码")
    private String projectType;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String projectTypeName;

    /** 类型明细编码 */
    @Excel(name = "类型明细编码")
    private String typeDetailsCode;

    /** 类型明细 */
    @Excel(name = "类型明细")
    private String typeDetailsName;

    /** 融资主体 */
    @Excel(name = "融资主体")
    private String financingSubject;

    /** 备注 */
    private String REMARK;

    public String getREMARK() {
        return REMARK;
    }

    public void setREMARK(String REMARK) {
        this.REMARK = REMARK;
    }

    public void setCreditAgreementId(String creditAgreementId)
    {
        this.creditAgreementId = creditAgreementId;
    }

    public String getCreditAgreementId()
    {
        return creditAgreementId;
    }
    public void setCreditAgreementCode(String creditAgreementCode)
    {
        this.creditAgreementCode = creditAgreementCode;
    }

    public String getCreditAgreementCode()
    {
        return creditAgreementCode;
    }
    public void setAccreditorCode(String accreditorCode)
    {
        this.accreditorCode = accreditorCode;
    }

    public String getAccreditorCode()
    {
        return accreditorCode;
    }
    public void setAccreditorName(String accreditorName)
    {
        this.accreditorName = accreditorName;
    }

    public String getAccreditorName()
    {
        return accreditorName;
    }
    public void setCreditAmountType(String creditAmountType)
    {
        this.creditAmountType = creditAmountType;
    }

    public String getCreditAmountType()
    {
        return creditAmountType;
    }
    public void setCreditAmount(BigDecimal creditAmount)
    {
        this.creditAmount = creditAmount;
    }

    public BigDecimal getCreditAmount()
    {
        return creditAmount;
    }
    public void setCURRENCY(String CURRENCY)
    {
        this.CURRENCY = CURRENCY;
    }

    public String getCURRENCY()
    {
        return CURRENCY;
    }
    public void setExchangeRate(BigDecimal exchangeRate)
    {
        this.exchangeRate = exchangeRate;
    }

    public BigDecimal getExchangeRate()
    {
        return exchangeRate;
    }
    public void setCirculationMark(String circulationMark)
    {
        this.circulationMark = circulationMark;
    }

    public String getCirculationMark()
    {
        return circulationMark;
    }
    public void setAmountOccupiedMoney(BigDecimal amountOccupiedMoney)
    {
        this.amountOccupiedMoney = amountOccupiedMoney;
    }

    public BigDecimal getAmountOccupiedMoney()
    {
        return amountOccupiedMoney;
    }
    public void setAmountEffectiveDate(Date amountEffectiveDate)
    {
        this.amountEffectiveDate = amountEffectiveDate;
    }

    public Date getAmountEffectiveDate()
    {
        return amountEffectiveDate;
    }
    public void setAmountExpiryDate(Date amountExpiryDate)
    {
        this.amountExpiryDate = amountExpiryDate;
    }

    public Date getAmountExpiryDate()
    {
        return amountExpiryDate;
    }
    public void setAmountState(String amountState)
    {
        this.amountState = amountState;
    }

    public String getAmountState()
    {
        return amountState;
    }
    public void setApprovalStatus(String approvalStatus)
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus()
    {
        return approvalStatus;
    }
    public void setSubmitTime(Date submitTime)
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime()
    {
        return submitTime;
    }
    public void setApprovedTime(Date approvedTime)
    {
        this.approvedTime = approvedTime;
    }

    public Date getApprovedTime()
    {
        return approvedTime;
    }
    public void setApprovalDept(String approvalDept)
    {
        this.approvalDept = approvalDept;
    }

    public String getApprovalDept()
    {
        return approvalDept;
    }
    public void setOwnerDept(String ownerDept)
    {
        this.ownerDept = ownerDept;
    }

    public String getOwnerDept()
    {
        return ownerDept;
    }
    public void setCORPCODE(String CORPCODE)
    {
        this.CORPCODE = CORPCODE;
    }

    public String getCORPCODE()
    {
        return CORPCODE;
    }
    public void setOwnerId(String ownerId)
    {
        this.ownerId = ownerId;
    }

    public String getOwnerId()
    {
        return ownerId;
    }
    public void setOwnerName(String ownerName)
    {
        this.ownerName = ownerName;
    }

    public String getOwnerName()
    {
        return ownerName;
    }
    public void setOwnerIdType(String ownerIdType)
    {
        this.ownerIdType = ownerIdType;
    }

    public String getOwnerIdType()
    {
        return ownerIdType;
    }
    public void setOwningBusinessUnit(String owningBusinessUnit)
    {
        this.owningBusinessUnit = owningBusinessUnit;
    }

    public String getOwningBusinessUnit()
    {
        return owningBusinessUnit;
    }
    public void setOwningUnitName(String owningUnitName)
    {
        this.owningUnitName = owningUnitName;
    }

    public String getOwningUnitName()
    {
        return owningUnitName;
    }
    public void setATTRIBUTE1(String ATTRIBUTE1)
    {
        this.ATTRIBUTE1 = ATTRIBUTE1;
    }

    public String getATTRIBUTE1()
    {
        return ATTRIBUTE1;
    }
    public void setATTRIBUTE2(String ATTRIBUTE2)
    {
        this.ATTRIBUTE2 = ATTRIBUTE2;
    }

    public String getATTRIBUTE2()
    {
        return ATTRIBUTE2;
    }
    public void setATTRIBUTE3(String ATTRIBUTE3)
    {
        this.ATTRIBUTE3 = ATTRIBUTE3;
    }

    public String getATTRIBUTE3()
    {
        return ATTRIBUTE3;
    }
    public void setATTRIBUTE4(String ATTRIBUTE4)
    {
        this.ATTRIBUTE4 = ATTRIBUTE4;
    }

    public String getATTRIBUTE4()
    {
        return ATTRIBUTE4;
    }
    public void setATTRIBUTE5(String ATTRIBUTE5)
    {
        this.ATTRIBUTE5 = ATTRIBUTE5;
    }

    public String getATTRIBUTE5()
    {
        return ATTRIBUTE5;
    }
    public void setATTRIBUTE6(String ATTRIBUTE6)
    {
        this.ATTRIBUTE6 = ATTRIBUTE6;
    }

    public String getATTRIBUTE6()
    {
        return ATTRIBUTE6;
    }
    public void setATTRIBUTE7(String ATTRIBUTE7)
    {
        this.ATTRIBUTE7 = ATTRIBUTE7;
    }

    public String getATTRIBUTE7()
    {
        return ATTRIBUTE7;
    }
    public void setATTRIBUTE8(String ATTRIBUTE8)
    {
        this.ATTRIBUTE8 = ATTRIBUTE8;
    }

    public String getATTRIBUTE8()
    {
        return ATTRIBUTE8;
    }
    public void setATTRIBUTE9(String ATTRIBUTE9)
    {
        this.ATTRIBUTE9 = ATTRIBUTE9;
    }

    public String getATTRIBUTE9()
    {
        return ATTRIBUTE9;
    }
    public void setATTRIBUTE10(String ATTRIBUTE10)
    {
        this.ATTRIBUTE10 = ATTRIBUTE10;
    }

    public String getATTRIBUTE10()
    {
        return ATTRIBUTE10;
    }
    public void setATTRIBUTE11(String ATTRIBUTE11)
    {
        this.ATTRIBUTE11 = ATTRIBUTE11;
    }

    public String getATTRIBUTE11()
    {
        return ATTRIBUTE11;
    }
    public void setATTRIBUTE12(String ATTRIBUTE12)
    {
        this.ATTRIBUTE12 = ATTRIBUTE12;
    }

    public String getATTRIBUTE12()
    {
        return ATTRIBUTE12;
    }
    public void setATTRIBUTE13(String ATTRIBUTE13)
    {
        this.ATTRIBUTE13 = ATTRIBUTE13;
    }

    public String getATTRIBUTE13()
    {
        return ATTRIBUTE13;
    }
    public void setATTRIBUTE14(String ATTRIBUTE14)
    {
        this.ATTRIBUTE14 = ATTRIBUTE14;
    }

    public String getATTRIBUTE14()
    {
        return ATTRIBUTE14;
    }
    public void setATTRIBUTE15(String ATTRIBUTE15)
    {
        this.ATTRIBUTE15 = ATTRIBUTE15;
    }

    public String getATTRIBUTE15()
    {
        return ATTRIBUTE15;
    }
    public void setATTRIBUTE16(String ATTRIBUTE16)
    {
        this.ATTRIBUTE16 = ATTRIBUTE16;
    }

    public String getATTRIBUTE16()
    {
        return ATTRIBUTE16;
    }
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy()
    {
        return createdBy;
    }
    public void setCreationDate(Date creationDate)
    {
        this.creationDate = creationDate;
    }

    public Date getCreationDate()
    {
        return creationDate;
    }
    public void setLastUpdatedBy(String lastUpdatedBy)
    {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public String getLastUpdatedBy()
    {
        return lastUpdatedBy;
    }
    public void setLastUpdateDate(Date lastUpdateDate)
    {
        this.lastUpdateDate = lastUpdateDate;
    }

    public Date getLastUpdateDate()
    {
        return lastUpdateDate;
    }
    public void setLastUpdateLogin(String lastUpdateLogin)
    {
        this.lastUpdateLogin = lastUpdateLogin;
    }

    public String getLastUpdateLogin()
    {
        return lastUpdateLogin;
    }
    public void setCreditDirection(String creditDirection)
    {
        this.creditDirection = creditDirection;
    }

    public String getCreditDirection()
    {
        return creditDirection;
    }
    public void setAmountLimit(String amountLimit)
    {
        this.amountLimit = amountLimit;
    }

    public String getAmountLimit()
    {
        return amountLimit;
    }
    public void setCreditProviderName(String creditProviderName)
    {
        this.creditProviderName = creditProviderName;
    }

    public String getCreditProviderName()
    {
        return creditProviderName;
    }
    public void setCreditProviderCode(String creditProviderCode)
    {
        this.creditProviderCode = creditProviderCode;
    }

    public String getCreditProviderCode()
    {
        return creditProviderCode;
    }
    public void setRemainingAmount(BigDecimal remainingAmount)
    {
        this.remainingAmount = remainingAmount;
    }

    public BigDecimal getRemainingAmount()
    {
        return remainingAmount;
    }
    public void setRegisterNumber(String registerNumber)
    {
        this.registerNumber = registerNumber;
    }

    public String getRegisterNumber()
    {
        return registerNumber;
    }
    public void setRegisterName(String registerName)
    {
        this.registerName = registerName;
    }

    public String getRegisterName()
    {
        return registerName;
    }
    public void setProjectAgency(String projectAgency)
    {
        this.projectAgency = projectAgency;
    }

    public String getProjectAgency()
    {
        return projectAgency;
    }
    public void setProjectAgencyName(String projectAgencyName)
    {
        this.projectAgencyName = projectAgencyName;
    }

    public String getProjectAgencyName()
    {
        return projectAgencyName;
    }
    public void setProjectAgency2(String projectAgency2)
    {
        this.projectAgency2 = projectAgency2;
    }

    public String getProjectAgency2()
    {
        return projectAgency2;
    }
    public void setProjectAgencyName2(String projectAgencyName2)
    {
        this.projectAgencyName2 = projectAgencyName2;
    }

    public String getProjectAgencyName2()
    {
        return projectAgencyName2;
    }
    public void setAssetToUse(String assetToUse)
    {
        this.assetToUse = assetToUse;
    }

    public String getAssetToUse()
    {
        return assetToUse;
    }
    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public String getProjectType()
    {
        return projectType;
    }
    public void setProjectTypeName(String projectTypeName)
    {
        this.projectTypeName = projectTypeName;
    }

    public String getProjectTypeName()
    {
        return projectTypeName;
    }
    public void setTypeDetailsCode(String typeDetailsCode)
    {
        this.typeDetailsCode = typeDetailsCode;
    }

    public String getTypeDetailsCode()
    {
        return typeDetailsCode;
    }
    public void setTypeDetailsName(String typeDetailsName)
    {
        this.typeDetailsName = typeDetailsName;
    }

    public String getTypeDetailsName()
    {
        return typeDetailsName;
    }
    public void setFinancingSubject(String financingSubject)
    {
        this.financingSubject = financingSubject;
    }

    public String getFinancingSubject()
    {
        return financingSubject;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("creditAgreementId", getCreditAgreementId())
                .append("creditAgreementCode", getCreditAgreementCode())
                .append("accreditorCode", getAccreditorCode())
                .append("accreditorName", getAccreditorName())
                .append("creditAmountType", getCreditAmountType())
                .append("creditAmount", getCreditAmount())
                .append("CURRENCY", getCURRENCY())
                .append("exchangeRate", getExchangeRate())
                .append("circulationMark", getCirculationMark())
                .append("amountOccupiedMoney", getAmountOccupiedMoney())
                .append("amountEffectiveDate", getAmountEffectiveDate())
                .append("amountExpiryDate", getAmountExpiryDate())
                .append("amountState", getAmountState())
                .append("approvalStatus", getApprovalStatus())
                .append("REMARK", getREMARK())
                .append("submitTime", getSubmitTime())
                .append("approvedTime", getApprovedTime())
                .append("approvalDept", getApprovalDept())
                .append("ownerDept", getOwnerDept())
                .append("CORPCODE", getCORPCODE())
                .append("ownerId", getOwnerId())
                .append("ownerName", getOwnerName())
                .append("ownerIdType", getOwnerIdType())
                .append("owningBusinessUnit", getOwningBusinessUnit())
                .append("owningUnitName", getOwningUnitName())
                .append("ATTRIBUTE1", getATTRIBUTE1())
                .append("ATTRIBUTE2", getATTRIBUTE2())
                .append("ATTRIBUTE3", getATTRIBUTE3())
                .append("ATTRIBUTE4", getATTRIBUTE4())
                .append("ATTRIBUTE5", getATTRIBUTE5())
                .append("ATTRIBUTE6", getATTRIBUTE6())
                .append("ATTRIBUTE7", getATTRIBUTE7())
                .append("ATTRIBUTE8", getATTRIBUTE8())
                .append("ATTRIBUTE9", getATTRIBUTE9())
                .append("ATTRIBUTE10", getATTRIBUTE10())
                .append("ATTRIBUTE11", getATTRIBUTE11())
                .append("ATTRIBUTE12", getATTRIBUTE12())
                .append("ATTRIBUTE13", getATTRIBUTE13())
                .append("ATTRIBUTE14", getATTRIBUTE14())
                .append("ATTRIBUTE15", getATTRIBUTE15())
                .append("ATTRIBUTE16", getATTRIBUTE16())
                .append("createdBy", getCreatedBy())
                .append("creationDate", getCreationDate())
                .append("lastUpdatedBy", getLastUpdatedBy())
                .append("lastUpdateDate", getLastUpdateDate())
                .append("lastUpdateLogin", getLastUpdateLogin())
                .append("creditDirection", getCreditDirection())
                .append("amountLimit", getAmountLimit())
                .append("creditProviderName", getCreditProviderName())
                .append("creditProviderCode", getCreditProviderCode())
                .append("remainingAmount", getRemainingAmount())
                .append("registerNumber", getRegisterNumber())
                .append("registerName", getRegisterName())
                .append("projectAgency", getProjectAgency())
                .append("projectAgencyName", getProjectAgencyName())
                .append("projectAgency2", getProjectAgency2())
                .append("projectAgencyName2", getProjectAgencyName2())
                .append("assetToUse", getAssetToUse())
                .append("projectType", getProjectType())
                .append("projectTypeName", getProjectTypeName())
                .append("typeDetailsCode", getTypeDetailsCode())
                .append("typeDetailsName", getTypeDetailsName())
                .append("financingSubject", getFinancingSubject())
                .toString();
    }
}
